Cross platform locale data name mapping interfaces and methods of use thereof

ABSTRACT

A method of mapping locale data names stored in a cross platform database is disclosed. In the described embodiment, the database is formatted and the attributes are loaded in the formatted database. An attribute associated with a source platform is selected and the database is queried for the selected attribute. The selected attribute is then provided to the target platform

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. ProvisionalApplication No. 60/311,974, filed Nov. 21, 2001, incorporated herein byreference in its entirety and for all purposes.

BACKGROUND OF THE INVENTION

[0002] 1. Field of Invention

[0003] This invention relates generally to computing systems.Specifically, provides a system, apparatus and method for compatibleinter-platform naming of any number of attributes in a computing system.

[0004] 2. Description of Related Art

[0005] There is the increasing demand of users for a computingenvironment that is in harmony with their own cultural and linguisticrequirements. Users want applications and file formats that they canshare with colleagues and customers an ocean away, applicationinterfaces in their own language, and time and date displays that theyunderstand at a glance. Essentially, users want to write and speak atthe keyboard in the same way that they always write and speak. Onepotential solution to this problem is incorporated in the UnicodeWorldwide Character Standard, or more commonly referred to simply asUnicode. Unicode, or Universal Codeset, is a universal characterencoding scheme developed and promoted by the Unicode Consortium thatencompasses most alphabetic, ideographic, and symbolic characters usedon computers today. As currently implemented, Unicode is a system for“the interchange, processing, and display of the written texts of thediverse languages of the modem world” that also supports many classicaland historical texts in a number of languages. Currently, the Unicodestandard contains 34,168 distinct coded characters derived from 24supported language scripts that cover the principal written languages ofthe world.

[0006] There are many attributes that are needed to define a country'scultural conventions. These attributes include the country's nativelanguage, the formatting of the date and time, the representation ofnumbers, the symbols for currency, etc. These local “rules” are termedthe country's locale. A locale is a set of language and cultural datathat is dynamically loaded into memory at runtime. Users can set thecultural aspects of their local work environment by setting specificvariables in a locale. These settings are then applied to the operatingsystem and to subsequent application launches.

[0007] Unfortunately, however, each platform (i.e., Solaris™, Java™,MSFT Windows™ 20x, NT, etc.) and various programming languages (C, forexample) have their own established naming conventions forcodeset/character sets, locale names, iconv (code conversion APIs)names, and the like. Accordingly, mid-tier applications that have to beinternationalized must deal with multiple languages and/or platforms andare forced to deal with any incompatibilities that arise due to anyinconsistent namings.

[0008] Therefore what is desired is an API, method, and system thatprovides an inter-platform naming compatibility interface.

SUMMARY OF THE INVENTION

[0009] According to the present invention, an API, method, and systemthat provides an inter-platform naming compatibility interface isdisclosed.

[0010] In one embodiment, a method of mapping locale data names storedin a cross platform database is disclosed. In the described embodiment,a database is loaded after which, attributes are loaded into thedatabase. An attribute is selected associated with a source platform andthe database is queried for the selected attribute. The selectedattribute is then provided from the database.

[0011] In another embodiment an apparatus for mapping locale data namesin a cross platform data base is disclosed.

[0012] In yet another embodiment, computer program product for mappinglocale data names in a cross platform data base is disclosed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013] The invention will be better understood by reference to thefollowing description taken in conjunction with the accompanyingdrawings.

[0014]FIG. 1 is a flowchart detailing a process 100 for providing localespecific attributes in accordance with an embodiment of the invention.

[0015]FIG. 2 is a flowchart detailing a process as an embodiment of thecall API operation of the process.

[0016]FIG. 3 show an exemplary data base into which a number ofplatforms and their associated attributes are stored.

[0017]FIG. 4 illustrates a computer system employed to implement theinvention.

DETAILED DESCRIPTION OF SELECTED EMBODIMENTS

[0018] Reference will now be made in detail to a preferred embodiment ofthe invention. An example of the preferred embodiment is illustrated inthe accompanying drawings. While the invention will be described inconjunction with a preferred embodiment, it will be understood that itis not intended to limit the invention to one preferred embodiment. Tothe contrary, it is intended to cover alternatives, modifications, andequivalents as may be included within the spirit and scope of theinvention as defined by the appended claims.

[0019] As described above, a locale is a set of language and culturaldata that is dynamically loaded into memory at runtime. Users can setthe cultural aspects of their local work environment by setting specificvariables in a locale. These settings are then applied to the operatingsystem and to subsequent application launches. Each locale has one ormore codesets associated with it. A codeset includes the codedrepresentation of characters used in a particular language. Codesets mayspan one-byte (for alphabetic languages) or two or more bytes forideographic languages. Each codeset assigns its own code-point values toeach character, without any inherent relationship to other codesets.That is, a code-point value that represents the letter ‘a’ in a Romancharacter set will represent another character entirely in the Cyrillicor Arabic system, and may not represent anything in an ideographicsystem. In Unicode, every character, symbol, and ideograph has its ownunique character code. As a result, there is no overlap or confusionbetween the code-point values of different codesets.

[0020] In a described embodiment of the invention, an operating system(such as for example, the Solaris™ created by Sun Microsystems, Inc. ofMountain View Calif.) includes an application programming interface (orAPI) that enables a developer to access directly the cultural data of aparticular locale such as, for example, an application will not need toencode the currency symbol for a particular region. By calling theappropriate system API, the API returns the symbol associated with thecurrent currency symbol the user has specified. In this way,applications can run in any locale without having special knowledge ofthe cultural or language information associated with the locale.

[0021] In a particular embodiment, a method of mapping locale data namesstored in a cross platform database is disclosed. In the describedembodiment, the database is formatted and the attributes are loaded inthe formatted database. An attribute associated with a source platformis selected and the database is queried for the selected attribute. Theselected attribute is then provided to the target platform

[0022] Accordingly, FIG. 1 is a flowchart detailing a process 100 forproviding locale specific attributes in accordance with an embodiment ofthe invention. The process 100 begins at 102 by providing a locale dataset and at 104 by calling the inventive API. At 106, the API responds byproviding the locale specific attributes.

[0023] In more detail, FIG. 2 is a flowchart detailing a process 200 asan embodiment of the call API operation 102 of the process 100. Moreparticularly, the process 200 begins at 202 by loading a formatteddatabase suitable for storing of the desired locale attributes. At 204,the API passes selected attributes to the database. At 206, the APIpasses source and target platforms. For example, referring to Table 1 inFIG. 3 showing an exemplary data base 300 into which a number ofplatforms and their associated attributes are stored where for thisexample only, the SOLARIS operating system is the source platform andWindows NT is the target platform where the selected attribute forconversion is “codepages”.

[0024] Returning back to FIG. 2, once the API has passed the source andtarget platforms, the target platform is updated at 208 and the selectedattribute is updated at 210. At 212, the database is queried todetermine if the selected attribute is included in the database asindicated by a match. If a match does not occur at 214, then theselected attribute is not found at 216 and an error flag is thrown at218. Otherwise, when a match is found, then the selected attribute isprovided to the target database at 220 and at 222 a determination ismade whether or not there is another target platform. If there isanother target platform, then the target platform is updated at 208,otherwise control is passed to 224 where a determination is made whetheror not the is another attribute for conversion. If there is anotherattribute, then control is passed to 210 where the attribute is updated,otherwise control is passed to 226 where the database is uploaded afterwhich processing stops.

[0025]FIG. 4 illustrates a computer system 1100 employed to implementthe invention. The computer system 1100 or, more specifically, CPUs1102, may be arranged to support a virtual machine, as will beappreciated by those skilled in the art. As is well known in the art,ROM acts to transfer data and instructions uni-directionally to the CPUs1102, while RAM is used typically to transfer data and instructions in abi-directional manner. CPUs 1102 may generally include any number ofprocessors. Both primary storage devices 1104, 1106 may include anysuitable computer-readable media. A secondary storage medium 1108, whichis typically a mass memory device, is also coupled bi-directionally toCPUs 1102 and provides additional data storage capacity. The mass memorydevice 1108 is a computer-readable medium that may be used to storeprograms including computer code, data, and the like. Typically, massmemory device 1108 is a storage medium such as a hard disk or a tapewhich generally slower than primary storage devices 1104, 1106. Massmemory storage device 1108 may take the form of a magnetic or paper tapereader or some other well-known device. It will be appreciated that theinformation retained within the mass memory device 1108, may, inappropriate cases, be incorporated in standard fashion as part of RAM1106 as virtual memory. A specific primary storage device 1104 such as aCD-ROM may also pass data uni-directionally to the CPUs 1102.

[0026] CPUs 1102 are also coupled to one or more input/output devices1110 that may include, but are not limited to, devices such as videomonitors, track balls, mice, keyboards, microphones, touch-sensitivedisplays, transducer card readers, magnetic or paper tape readers,tablets, styluses, voice or handwriting recognizers, or other well-knowninput devices such as, of course, other computers. Finally, CPUs 1102optionally may be coupled to a computer or telecommunications network,e.g., an Internet network or an intranet network, using a networkconnection as shown generally at 1112. With such a network connection,it is contemplated that the CPUs 1102 might receive information from thenetwork, or might output information to the network in the course ofperforming the above-described method steps. Such information, which isoften represented as a sequence of instructions to be executed usingCPUs 1102, may be received from and outputted to the network, forexample, in the form of a computer data signal embodied in a carrierwave. The above described devices and materials will be familiar tothose of skill in the computer hardware and software arts.

[0027] Although only a few embodiments of the present invention havebeen described, it should be understood that the present invention maybe embodied in many other specific forms without departing from thespirit or the scope of the present invention. By way of example, themulti-platform compiler can be used in any computing system.

[0028] While the present invention has been described as being used witha UNIX based operating system on a computer system, it should beappreciated that the present invention may generally be implemented onany suitable computing system having a compiler. Therefore, the presentexamples are to be considered as illustrative and not restrictive, andthe invention is not to be limited to the details given herein, but maybe modified within the scope of the appended claims along with theirfull scope of equivalents.

[0029] While this invention has been described in terms of a preferredembodiment, there are alterations, permutations, and equivalents thatfall within the scope of this invention. It should also be noted thatthere are may alternative ways of implementing both the process andapparatus of the present invention. It is therefore intended that theinvention be interpreted as including all such alterations,permutations, and equivalents as fall within the true spirit and scopeof the present invention.

What is claimed is:
 1. A method of mapping locale data names stored in across platform database, comprising: loading the database; loading theattributes in the formatted database; selecting an attribute associatedwith a source platform; querying the database for the selectedattribute; and providing the selected attribute to a target platform. 2.A method as recited in claim 1, wherein the loading comprises: passingthe attributes by an application programming interface (API); andpassing the source platform and the target platform by the API.
 3. Amethod as recited in claim 1, further comprising: throwing an error flagwhen the selected attribute is not found in the database by thequerying.
 4. A method as recited in claim 1, further comprising:unloading the database.
 5. A method as recited in claim 1, wherein thedatabase is a codepages database.
 6. A method as recited in claim 1,wherein the source platform is selected from a group comprising: aSOLARIS platform, an AIX platform, a WINDOWS NT platform, a WINDOWSplatform, and a LINUX platform.
 7. An apparatus for mapping locale datanames stored in a cross platform database, comprising: a means forloading the database; a means for loading the attributes in theformatted database; a means for selecting an attribute associated with asource platform; a means for querying the database for the selectedattribute; and a means for providing the selected attribute to a targetplatform.
 8. An apparatus as recited in claim 7, wherein the loadingcomprises: a means for passing the attributes by an applicationprogramming interface (API); and a means for passing the source platformand the target platform by the API.
 9. An apparatus as recited in claim7, further comprising: a means for throwing an error flag when theselected attribute is not found in the database by the querying.
 10. Anapparatus as recited in claim 7, further comprising: a means forunloading the database.
 11. An apparatus as recited in claim 7, whereinthe database is a codepages database.
 12. An apparatus as recited inclaim 7, wherein the source platform is selected from a groupcomprising: a SOLARIS platform, an AIX platform, a WINDOWS NT platform,a WINDOWS platform, and a LINUX platform.
 13. A computer program productarranged to enable a computing device to map locale data names stored ina cross platform database, comprising: computer code for loading thedatabase; computer code for loading the attributes in the formatteddatabase; computer code for selecting an attribute associated with asource platform; computer code for querying the database for theselected attribute; computer code for providing the selected attributeto a target platform; and a computer readable medium for storing thecomputer code.
 14. A computer program product as recited in claim 13,wherein the loading comprises: computer code for passing the attributesby an application programming interface (API); and computer code forpassing the source platform and the target platform by the API.
 15. Acomputer program product as recited in claim 14, further comprising:computer code for throwing an error flag when the selected attribute isnot found in the database by the querying.
 16. A computer programproduct as recited in claim 13, further comprising: computer code forunloading the database.
 17. A computer program product as recited inclaim 13, wherein the database is a codepages database.
 18. An apparatusas recited in claim 13, wherein the source platform is selected from agroup comprising: a SOLARIS platform, an AIX platform, a WINDOWS NTplatform, a WINDOWS platform, and a LINUX platform.